package com.yuelao.yuelao_backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuelao.yuelao_backend.dto.DailyActionStatsDTO;
import com.yuelao.yuelao_backend.entity.DailyUserStats;

/**
 * 每日操作记录Service
 */
public interface DailyActionRecordService extends IService<DailyUserStats> {

    /**
     * 获取或创建今日记录
     * @param userId 用户ID
     * @return 今日记录
     */
    DailyUserStats getTodayRecord(Long userId);

    /**
     * 增加喜欢次数
     * @param userId 用户ID
     * @param isSuper 是否超级喜欢
     * @return 是否成功
     */
    boolean incrementLikeCount(Long userId, boolean isSuper);

    /**
     * 增加关注次数
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean incrementFollowCount(Long userId);

    /**
     * 增加配对次数
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean incrementMatchCount(Long userId);

    /**
     * 检查今日是否还能喜欢
     * @param userId 用户ID
     * @param isVip 是否VIP
     * @return 是否还能喜欢
     */
    boolean canLikeToday(Long userId, boolean isVip);

    /**
     * 检查今日是否还能超级喜欢
     * @param userId 用户ID
     * @param isVip 是否VIP
     * @return 是否还能超级喜欢
     */
    boolean canSuperLikeToday(Long userId, boolean isVip);

    /**
     * 检查今日是否还能关注
     * @param userId 用户ID
     * @param isVip 是否VIP
     * @return 是否还能关注
     */
    boolean canFollowToday(Long userId, boolean isVip);

    /**
     * 获取今日操作统计
     * @param userId 用户ID
     * @param isVip 是否VIP
     * @return 统计数据
     */
    DailyActionStatsDTO getTodayStats(Long userId, boolean isVip);
}

